package com.yunke.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;

/**
 * 实名认证DTO
 * 
 * @author yunke
 * @since 1.0.0
 */
@Data
@Schema(description = "实名认证请求")
public class YunkeRealAuthDto {

    /**
     * 真实姓名
     */
    @NotBlank(message = "真实姓名不能为空")
    @Size(min = 2, max = 10, message = "真实姓名长度必须在2-10个字符之间")
    @Schema(description = "真实姓名", example = "张三")
    private String realName;

    /**
     * 身份证号
     */
    @NotBlank(message = "身份证号不能为空")
    @Pattern(regexp = "^[1-9]\\d{5}(18|19|20)\\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$", 
            message = "身份证号格式不正确")
    @Schema(description = "身份证号", example = "110101199001011234")
    private String idCardNumber;

    /**
     * 身份证正面照片URL
     */
    @NotBlank(message = "身份证正面照片不能为空")
    @Schema(description = "身份证正面照片URL", example = "https://example.com/idcard_front.jpg")
    private String idCardFront;

    /**
     * 身份证背面照片URL
     */
    @NotBlank(message = "身份证背面照片不能为空")
    @Schema(description = "身份证背面照片URL", example = "https://example.com/idcard_back.jpg")
    private String idCardBack;
} 